package avatarU3D;

import java.awt.image.BufferedImage;
import java.net.URL;
import java.util.Hashtable;
import java.util.Vector;

/**
 * Esta clase modela el avatar del jugador a partir de
 * imagenes de las partes del cuerpo las cuales seran
 * procesadas para crear una unica imagen que envolvera el
 * avatar.
 * @author Agustin Burgos - "el que lo implemente"
 *
 */
public class Avatar {

	/**
	 * Contiene las imagenes del skin de tal manera
	 * que la clave es un string que representa la
	 * parte del cuerpo (zapatillas - pantalon - remera - rostro)
	 * y el valor es una BufferedImage que es la imagen
	 * propiamente dicha.
	 */
	private Hashtable<String,BufferedImage> avatarSkins;
	
	/**
	 * Referencia a la imagen que envolvera el avatar.
	 * No representa el cabello ya que esta es una imagen aparte.
	 */
	private BufferedImage skin;
	
	
	/**
	 * Constructor de la clase. Probablemente no se utilice.
	 * @param avatarSkins
	 * @param skin
	 */
	public Avatar(Hashtable<String, BufferedImage> avatarSkins,
			BufferedImage skin) {
		super();
		this.avatarSkins = avatarSkins;
		this.skin = skin;
	}

	/**
	 * Constructor de la clase.
	 */
	public Avatar(){
		super();
		this.avatarSkins= new Hashtable<String, BufferedImage>();
	}

	
	/**
	 * Este metodo genera una imagen a partir del Hashtable
	 * que envuelve el avatar. La idea es recorrer el hashtable
	 * y armar un skin que se almacena en la variable de instancia
	 *  "skin".
	 * 
	 */
	public void generateSkin()
	{
		
	}



	public Hashtable<String, BufferedImage> getAvatarSkins() {
		return avatarSkins;
	}


	/**
	 * Este metodo recibe por parametro un listado de URL's
	 * las cuales referencian las partes del cuerpo del avatar,
	 *  recorre dicho listado y carga el Hashtable con las imagenes
	 *  ya convertidas a BufferedImage.
	 * @param avatarSkins
	 */
	public void setAvatarSkins(Vector<URL> skinParts) {
		
	}
	
	public void setAvatarSkins(Hashtable<String, BufferedImage> avatarSkins) {
		this.avatarSkins = avatarSkins;
	}


	public BufferedImage getSkin() {
		return skin;
	}



	public void setSkin(BufferedImage skin) {
		this.skin = skin;
	}
	
	
}
